import java.util.Stack;

public class QueueUsingStacks {
    private Stack<Integer> stack1; // 用于插入操作
    private Stack<Integer> stack2; // 用于删除操作

    public QueueUsingStacks() {
        stack1 = new Stack<>();
        stack2 = new Stack<>();
    }

    // 插入操作
    public void push(int x) {
        stack1.push(x);
    }

    // 删除操作
    public int pop() {
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }

    // 判断队列是否为空
    public boolean empty() {
        return stack1.isEmpty() && stack2.isEmpty();
    }

    public static void main(String[] args) {
        QueueUsingStacks queue = new QueueUsingStacks();
        int n = 5; // 示例插入和删除操作次数
        int[] elements = {1, 2, 3, 4, 5}; // 示例插入的元素

        // 插入操作
        for (int elem : elements) {
            queue.push(elem);
        }

        // 删除操作
        for (int i = 0; i < n; i++) {
            System.out.println(queue.pop()); // 按插入顺序输出元素
        }
    }
}
